Washroom use determination system

ABSTRACT

A system having a washroom controller configured to communicate with one or more hygiene dispensers in the washroom; a thermal sensor configured detect thermal events at the entrance and communicate data describing the thermal events to the washroom controller; and a data processing apparatus configured to access the data from the washroom controller and analyze the data to determine a number of thermal events over a given time period and a number of dispenses from the at least one of the one or more hygiene dispensers.

This application claims priority from U.S. provisional PatentApplication Ser. No. 62/691,866 filed on 29 Jun. 2018, the entirecontents of which are incorporated herein by reference.

TECHNICAL FIELD

This disclosure relates to determining washroom use and traffic.

Washroom traffic data can be used to determine how often and when awashroom should be serviced based on the level of use inferred from thetraffic data. Such data can also be used to understand occupant trafficpatterns in a building including which floors or areas are more heavilyused than others. In any case, washroom traffic information can bedetermined through the use of door counters, which are devices mountedon the door, doorframe or both, and sense when the door opens/closes.This requires that each door have such a sensor, which can be costly.

Further, some washrooms do not have entrance/exit doors but rather openpassageways through which occupants must navigate to enter or leave thewashroom. In these types of washrooms door counters are not suitable,which makes washroom traffic more difficult to determine.

SUMMARY OF THE DISCLOSURE

In general, the subject matter of this specification relates todetermining washroom traffic.

In general, one aspect of the subject matter described in thisspecification can be implemented in systems that include a washroomcontroller configured to communicate with one or more hygiene dispensersin the washroom; a thermal sensor configured detect thermal events atthe entrance and communicate data describing the thermal events to thewashroom controller; and a data processing apparatus configured toaccess the data from the washroom controller and analyze the data todetermine a number of thermal events over a given time period and anumber of dispenses from the at least one of the one or more hygienedispensers (e.g., over that same time period). Other embodiments of thisaspect include corresponding methods, apparatus, and computer programproducts.

Yet another aspect of the subject matter described in this specificationcan be implemented in methods that include communicating, from a hygienedispenser in a washroom to a washroom controller, use data describingdispense events from the hygiene dispenser, wherein a dispense eventdefines an actuation of the dispenser to dispense consumable product;detecting, by a thermal sensor, thermal events proximate an entrance ofthe washroom; communicating, from the thermal sensor to the washroomcontroller, thermal data describing the thermal events; analyzing theuse data and thermal event data to determine a number of dispense eventsand a number of occupants that entered in the washroom; and displayingthe number of dispense events and occupants. Other embodiments of thisaspect include corresponding systems, apparatus, and computer programproducts.

A further aspect of the subject matter described in this specificationcan be implemented in methods that include communicating, from a hygienedispenser in a washroom to a washroom controller, use data describingdispense events from the hygiene dispenser, wherein a dispense eventdefines an actuation of the dispenser to dispense consumable product;detecting, by a thermal sensor, thermal events proximate an entrance ofthe washroom; communicating, from the thermal sensor to the washroomcontroller, thermal data describing the thermal events; analyzing theuse data and thermal event data to determine a number of dispense eventsand a number of occupants that entered in the washroom; and comparingthe number of dispense events to the number of occupants; and inresponse to determining that the number of occupants differs from thenumber of dispense events by a predetermined measure, providing acommunication specifying that the hygiene dispenser may bemalfunctioning. Other embodiments of this aspect include correspondingsystems, apparatus, and computer program products.

Particular embodiments of the subject matter described in thisspecification can be implemented so as to realize one or more of thefollowing advantages. For example, separate and discrete door countersare not needed for every entrance and/or exit as the washroom systemdescribed herein can, from a single washroom location such as centrallymounted in the washroom ceiling, thermally detect temperature changes atmultiple entrances and/or exits by having thermal sensors aimed at thoseareas with each thermal event indicating an occupant entered or left thewashroom. Having such a thermal detection device avoids not only themultiple door counters (and associated costs) but also the complexityassociated with retrieving data from those remote door counters.

Some washrooms do not have entrance/exit doors but rather openpassageways, for example, with ninety degree bends (for privacy). Inthese washrooms using traditional door counters is not even an option.Because the washroom system described herein uses a thermal sensor sucha system can determine traffic in these open passageways washroomsbecause it does not depend on door opening or closing events todetermine such traffic.

The details of one or more implementations of the subject matterdescribed in this specification are set forth in the accompanyingdrawings and the description below. Other features, aspects, andadvantages of the subject matter will become apparent from thedescription, the drawings, and the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of an example environment in which a washroomuse determination system can be implemented.

FIG. 2 is a block diagram of an example washroom controller.

FIG. 3A is a block diagram of an example thermal sensor.

FIG. 3B is a representation of example visualized thermal data.

FIG. 3C is a representation of example visualized interpolated thermaldata.

FIG. 3D is a representation of example visualized interpolated thermaldata with noise removed.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION OF THE DISCLOSURE

The present disclosure relates to determining washroom traffic and use.The washroom traffic system includes a washroom controller that cancommunicate with the various dispensers in the washroom and the thermalsensor. For example, the thermal sensor can be in the washroomcontroller, which is mounted on the ceiling of the washroom. The thermalsensor detects thermal variations or thermally warm spots in thewashroom. A data processing apparatus in communication with the washroomcontroller can access the thermal data and infer the presence ofoccupants entering or existing the washroom based on heat signatures ofthe occupants proximate the door or entry/exit to the washroom anddetermine the number of washroom dispenser dispenses to give a holisticview of the washroom use. The washroom use determination system isdescribed in additional detail below.

FIG. 1 is a block diagram of an example environment 100 in which awashroom use determination system 102 can be implemented. Theenvironment 100 can be, for example, a semi-private or public washroomor break room or another space in which dispensers 104 and, optionally,equipment such as toilets 106 and/or sinks 108, are located. Thedispensers 104 can include, for example, hand towel dispensers 104 a,bath tissue dispensers 104 b, hand soap (or other cleansing) dispensers104 c, hand or facial care dispensers (not pictured), and the like. Insome implementations, one or more of the dispensers 104 arehygiene-based dispensers. A hygiene dispenser 104 dispenses consumablehygiene product (e.g., bath tissue, hand towels, hand sanitizer, soap,lotion, deodorizer, air freshener, etc.), which is a product intended topromote good hygiene or sanitation such as by cleaning or sanitizing auser and/or a surface. In some implementations, a dispenser 104, moregenerally, is a device that holds consumable (hygiene) product anddispenses the product in response to a stimulus, e.g., an environmentalstimulus (e.g., light/darkness), at pre-determined (e.g.,programmatically set) intervals or by manual user actuation such aspulling an exposed portion of the consumable product or via apumping-type process (e.g., for some manual soap dispensers).

The washroom use determination system 102 can be used to determinetraffic in the environment 100, e.g., number of occupants at any onetime in the environment 100 or the number of occupants entering and/orexiting the environment 100 over a given time period. The system 102 canalso determine the number of dispenser 104 dispenses over a given timeperiod including when such dispensing events occurred.

To this end, the system 102 includes a washroom controller 106, athermal sensor 108 and a data processing apparatus 110. The washroomcontroller 106 communicates, e.g., over wired or wireless channels, withthe dispensers 104 and the thermal sensor 108 to, for example, instructthe operation of the dispenser 104 and/or sensor 108. The controller 106also receives data from the dispensers 104 describing the dispensingevents (e.g., an actuation of the dispenser 104 causing consumableproduct to be dispensed to a user) of the dispensers 104 (e.g., thenumber of dispense events over a given time period and the time of suchdispensing events or the number and times of dispensing events since thelast report provided to the controller 104) and thermal event data fromthe sensor 108.

FIG. 2 is a block diagram of an example washroom controller 106. In someimplementations, the controller 106 includes a processor 112 (e.g., amicrocontroller or a microprocessor), a transceiver 114, and a memorystorage device 116 (e.g., volatile and/or non-volatile memory). Thetransceiver 114, at the direction of the processor 112, for example,communicates with the dispensers 104 and thermal sensor 108 to receivedata describing the operation or state of the each. The controller 104,through use of the processor 112, can store such data in the memorystorage device 116 for use or later access. The memory storage device116 can store programmatic instructions to control or instruct theoperation of the controller 106.

FIG. 3A is a block diagram of an example thermal sensor 108. In someimplementations the thermal sensor 108 includes a processor 212 (e.g., amicrocontroller or a microprocessor), a transceiver 214, and a memorystorage device 216 (e.g., volatile and/or non-volatile memory). In someimplementations (e.g., in which the sensor 108 is co-located with thecontroller 106) the thermal sensor 108 shares or otherwise is benefitedfrom the processor 112, memory 116 and/or the transceiver 114 of thecontroller 106 and may not have a processor 212, memory 216 and/or thetransceiver 214.

The thermal sensor 108 detects thermal events in the environment 100,e.g., at the entrance and/or exit of the environment 100. Theentrance/exit can be a door or open passageway, e.g., an opening intothe environment without a door such as a short corridor having a left orright turn to prevent an outside observer from readily seeing into theenvironment 100. A thermal event is a change in the thermal status orstate (e.g., a temperature change) of a portion of the environment 100.For example, a thermal event at the entrance 125 occurs when an occupantdwells at or passes through the entrance 125 as the occupant presents athermal change (e.g., thermal increase) at the entrance 125 by herpresence there, as opposed to the entrance 125 having a different (e.g.,lower) thermal characteristic without the presence of the occupant.

The thermal sensor 108 can be, for example, an infrared thermal sensoror sensor array (e.g., based on thermopile elements in an array such asan 8×8 grid) (see generally, Tracking Motion and Proxemics usingThermal-sensor Array, Basu and Rowe, Carnegie Mellon University. 2014,which is hereby incorporated by reference in its entirety). In someimplementations, other types of sensors can be used to determine trafficsuch as pyroelectric sensors.

FIG. 3B is a representation 302 of example visualized thermal data, forexample, as captured by the thermal sensor 108 of a portion of theenvironment 100 (e.g., a plan or top-down view of the environment 100).The darker sections (e.g., pixel 304) represent areas in the environment100 that have an elevated or higher thermal signature (e.g.,temperature) as compared to lighter sections (e.g. pixel 306). Based onthe positioning of the thermal sensor 108 and the size and layout of theenvironment 100 the representation (e.g., 302) can capture all of theenvironment 100 or only a positon thereof. The sections (e.g., pixels)of the representation 302 can be correlated with actual, physicallocations in the environment 100. Thus the representation 302 shows agradient of thermal states (e.g., temperatures) across the environment100. For example, the gradient could be from 100 degrees Fahrenheit to80 degrees Fahrenheit. The gradient can be set as a function of ceilingheight of the environment 100 and/or ambient temperature of theenvironment 100.

In some implementations, the thermal gradient of the representation 302can be set such that the thermal signature of washroom occupantscorresponds to the darker sections (e.g., at or including pixel 304)with the lighter sections (e.g., pixel 306) indicating that no occupantsare in those sections/areas of the environment 100, as the thermal stateof those sections is lower than would be if an occupant was there. Giventhat occupants have this known (or predefined) thermal signature on thegradient, the darker sections can be correlated with the thermalsignature of occupants to map the position of occupants in theenvironment 100, within some confidence interval.

In some implementations, the thermal sensor 108 is an array of sensors,for example, such as an 8×8 array, and the pixels of the representation302 correspond to each sensor element of the array 108. Thus the array108 detects in a 64 element matrix. The thermal data, produced by thesensor 108, can, in this example, include the thermal information (e.g.,a temperature or thermal state) from each of these 64 elements. Asdescribed above, each of these element can be mapped to a physicallocation in the environment 100.

The system 102 also includes a data processing apparatus 110. The dataprocessing apparatus 110 can access the data (e.g., thermal data anddispenser event/actuation data) from the washroom controller 106 (or insome implementations directly from the dispensers 104 and sensor 108).The data processing apparatus 110 can analyze the data to determine anumber of thermal events over a given time period in the environment 100(or a portion of the environment 100) based on the thermal data and anumber of dispenses from the dispensers 104 based on the dispense eventdata. In some implementations, the data processing apparatus 110 can beintegral or co-located with the washroom controller 106 or it can beremote to the controller 106. For example, in some implementations, thedata processing apparatus 110 is realized, at least partially, as acloud-based service, with wired or wireless communication with thecontroller 106 and/or thermal sensor 108.

As described above, the resolution of the thermal sensor 108 can belimited by the size of its sensor array. To increase the fidelity orresolution of the thermal data the data processing apparatus 110 canapply, for example, interpolation techniques (e.g., linear, bi-cubic orother polynomial interpolation) to the thermal data to generateinterpolated thermal data. FIG. 3C is a representation 308 of examplevisualized interpolated thermal data, which is, for example, a 29×29array.

In some implementations, the data processing apparatus 110 furtherprocesses the interpolated thermal data to remove background noise fromthe data set. FIG. 3D is a representation 310 of example visualizedinterpolated thermal data with noise removed. The data processingapparatus 110 can remove the noise through any number of techniques suchas, for example, non-linear filtering (e.g., median filtering) or usingwavelet transforms. By way of example, to remove background noise in thethermal data set, the data processing apparatus 110 can, for eachelement in the array, compare the value of that element (e.g.,temperature) against (i) the average value of the entire array plus (ii)a temperature threshold value (collectively, the “compared value” or“thermal threshold level”). The average value of the elements in thearray can be referred to as the average background temperature.

If the element value exceeds (or equals) the compared value then thatelement can be classified as indicative of occupant presence and itretains its value, and if the element value does not exceed the comparedvalue then that element value can be replaced with a (running)background average value for the array (“analyzed thermal data”). Insome implementations, the temperature threshold value can be selected toprovide a desired confidence level that the value of an element likelyindicates an occupant was in the area corresponding to the analyzedelement. The data processing apparatus 110, e.g., through imageprocessing techniques such as edge detection, can group similarly valuedelements/pixels to create clusters, and count the clusters. As shown inFIG. 3D, pixel (e.g., element) clusters 312 and 314 are shown in theenvironment 100. The data processing apparatus 110 can beprogrammatically instructed to count each cluster (or thermal hot zone)as a respective occupant—so the data processing apparatus 110 determinesthere were two occupants present at the time the thermal data set wasgenerated.

The thermal sensor 108 can generate thermal data periodically, e.g.,every second or minute, and send such data to the data processingapparatus 110 upon request or at specified intervals. In turn, the dataprocessing apparatus 110 can, for example, analyze the thermal data overa given time period to generate sets of analyzed thermal data todescribe thermal event traffic over the given time period (e.g., bystitching together the various sets of thermal data in a time-sequencedmanner). In some implementations, the thermal sensor 108 can bepositioned to detect thermal events at multiple entrances/exits.

The data processing apparatus 110 can, for example, compare clusters orhot zones over time (from different thermal data sets) to determine alength of time or duration that a cluster or thermal hot zone remains inthe same space (e.g., section of the environment 100). For example,referring to representation 310, the data processing apparatus 110 cancompare thermal data sets at different (but sequential) times todetermine how long a cluster 312 remains in the same space. If the dataprocessing apparatus 110 determines that the cluster stays in the sameplace for an administratively set time period (e.g., twenty minutes) andoptionally during a specified time of day (e.g., from 9 pm to 4 am), thedata processing apparatus 110 can send an message to a device of asystem administrator, as the cluster (representing an occupant) notmoving for the specified duration could be an indication that anoccupant is in distress.

In some implementations, the thermal sensor 108 is directed to sense thearea at and/or proximate the entrance 125 or 316 to the environment 100and generate thermal data every two seconds (or other specified timeperiod). The data processing apparatus 110 can take that thermal dataand generate analyzed thermal data at each same two second interval. Foreach set of analyzed thermal data the data processing apparatus 110 candetermine the number of clusters (e.g., occupants) at the entrance 125or 316. Assuming that no occupant dwells at the entrance 125 or 316 formore than two seconds (or another set or statistically determinedinterval) and that the two second interval is frequent enough to captureevery occupant entering and leaving through the entrance 125 or 316, thedata processing apparatus 110 “counts” the number of clusters at theentrance 125 or 316 for each set of data and aggregates the counts toarrive at a total occupant number (or total number of thermal events).Assuming each occupant entered and left the washroom through theentrance 125 or 316, the data processing apparatus 110 can be programmedto divide the total occupant number by two to determine the number ofvisits to the environment 100 (a same occupant could visit theenvironment 100 multiple times each counting as a determined visit).

In some implementations, system 102 can reduce the energy consumption ofthe dispensers 104 by causing the dispensers 104 to power down duringperiods of environment 100 inactivity (e.g., when no occupants are inthe environment 100) to save energy (e.g., battery energy of thedispensers 104). For example, in response to the data processingapparatus 110 determining that there have been no thermal events in theenvironment 100 for a set period of time (e.g., fifteen minutes), thedata processing apparatus 110 instructs (e.g., through the controller106) the dispensers 104 to enter a low energy state (a state in whichthe dispensers 104 cannot dispense).

However, when an occupant enters the environment 100 it's likely theoccupant will use a dispenser 104 so the dispensers 104 must beinstructed to return to an active state (e.g., a state in which thedispensers 104 dispense in normal operation) from the low energy state.For example, in response to determining a thermal event at the entrance125 or 316 (and after the dispensers 104 have been instructed to enterthe low energy state), the data processing apparatus 110 instructs thewashroom controller 106 to cause the dispensers 104 to enter the activestate. In this way the system 102 can reduce the energy consumption ofdispensers 104 in the environment 100 without adversely affecting theoccupants' experience with the dispensers 104.

In some implementations, the data processing apparatus 110 provides thedata describing the number of occupants in the environment 100 during agiven time period and the number of dispense events during that sametime period to a display device (e.g., a monitor or smart phone) fordisplay to a user.

Occupant visits to a washroom (e.g., environment 100) generally involveuse of a dispenser 104, whether it be a bath tissue dispenser 104, apaper towel dispenser 104, a soap/sanitizer dispenser 104 or the like.So if the number of occupant visits is high but dispenser use isstatistically low, then it can be inferred that there may be amalfunctioning dispenser(s) 104, which is resulting in the abnormallylow dispenser use profile. Thus, given a statistical measure quantifyingthe relationship between dispenser use and occupant visits (e.g., from apre-existing analysis of washroom use) (the “statistical relationship”),the data processing apparatus 110 can be programmed to infer dispensermalfunctions. Such malfunctions can be, for example, a paper jam, adepleted battery or a no consumable product state (i.e., the dispenser104 is out of consumable product). In some implementations, the dataprocessing apparatus 110, compares the number of dispense events to thenumber of occupants over a given time period. And, in response todetermining that the number of occupants differs from the number ofdispense events by a predetermined measure (e.g., based on thestatistically relationship), the data processing apparatus 110 providesa communication specifying that one or more dispensers 104malfunctioning. Thus, in some implementations, the data processingapparatus 110 determines a possible dispenser 104 malfunction hasoccurred, and sends a message to an attendant (e.g., via the attendant'smobile device/smart phone).

Embodiments

Embodiment 1. A system for use in a washroom, wherein the washroom hasan entrance, the system comprising a washroom controller configured tocommunicate with one or more hygiene dispensers in the washroom; athermal sensor configured detect thermal events at the entrance andcommunicate data describing the thermal events to the washroomcontroller; and a data processing apparatus configured to access thedata from the washroom controller and analyze the data to determine anumber of thermal events over a given time period and a number ofdispenses from the at least one of the one or more hygiene dispensers.

Embodiment 2. The system of embodiment 1, wherein the data processingapparatus and washroom controller are part of a same device.

Embodiment 3. The system of embodiments 1 or 2, wherein the thermalsensor comprises an array of infrared sensors.

Embodiment 4. The system of any preceding embodiment, wherein determinea number of thermal events over a given time period comprises comparingthe data to a thermal threshold to identify the number of thermal eventsthat exceed the threshold.

Embodiment 5. The system of any preceding embodiment, wherein determinea number of thermal events comprises interpolating the thermal data togenerate interpolated thermal data.

Embodiment 6. The system of embodiment 5, wherein determine a number ofthermal events comprises removing noise from the interpolated thermaldata.

Embodiment 7. The system of embodiment 6, wherein removing noise fromthe interpolated thermal data comprises determining an averagebackground temperature.

Embodiment 8. The system of any preceding embodiment, wherein thethermal sensor is configured detect thermal hot zones in the washroomand a thermal hot zone is an area in the washroom that has a temperaturehigher than surrounding areas in the washroom.

Embodiment 9. The system of embodiment 8, wherein the data processingapparatus is configured to analyze the data to determine a number ofthermal hot zones.

Embodiment 10. The system of embodiment 8, wherein the data processingapparatus is configured to analyze the data to determine a time durationof one of the thermal hot zones and in response to determining the timeduration exceeds a threshold, the data processing apparatus isconfigured to notify an administrator.

Embodiment 11. The system of any preceding embodiment, wherein inresponse to a thermal event at the entrance, the washroom controller isconfigured to activate (e.g., prime soap dispenser or wake a batteryoperated device) at least one of the one or more hygiene dispensers.

Embodiment 12. The system of any preceding embodiments, wherein theentrance is a door.

Embodiment 13. The system of any embodiments 1-11, wherein the entranceis an open threshold.

Embodiment 14. A method comprising communicating, from a hygienedispenser in a washroom to a washroom controller, use data describingdispense events from the hygiene dispenser, wherein a dispense eventdefines an actuation of the dispenser to dispense consumable product;detecting, by a thermal sensor, thermal events proximate an entrance ofthe washroom; communicating, from the thermal sensor to the washroomcontroller, thermal data describing the thermal events; analyzing theuse data and thermal event data to determine a number of dispense eventsand a number of occupants that entered in the washroom; and displayingthe number of dispense events and occupants.

Embodiment 15. The method of embodiment 14, wherein the entrance is adoor.

Embodiment 16.The method of embodiment 14, wherein the entrance is anopen threshold.

Embodiment 17. The method of any of embodiments 14-16, wherein thethermal sensor comprises an array of infrared sensors.

Embodiment 18. A method comprising communicating, from a hygienedispenser in a washroom to a washroom controller, use data describingdispense events from the hygiene dispenser, wherein a dispense eventdefines an actuation of the dispenser to dispense consumable product;detecting, by a thermal sensor, thermal events proximate an entrance ofthe washroom; communicating, from the thermal sensor to the washroomcontroller, thermal data describing the thermal events; analyzing theuse data and thermal event data to determine a number of dispense eventsand a number of occupants that entered in the washroom; and comparingthe number of dispense events to the number of occupants; and inresponse to determining that the number of occupants differs from thenumber of dispense events by a predetermined measure, providing acommunication specifying that the hygiene dispenser may bemalfunctioning.

Implementations of the subject matter and the operations described inthis specification can be implemented, at least in part, in digitalelectronic circuitry, or in computer software, firmware, or hardware,including the structures disclosed in this specification and theirstructural equivalents, or in combinations of one or more of them.Implementations of the subject matter described in this specificationcan be implemented, at least in part, as one or more computer programs,i.e., one or more modules of computer program instructions, encoded oncomputer storage medium for execution by, or to control the operationof, data processing apparatus. Alternatively or in addition, the programinstructions can be encoded on an artificially-generated propagatedsignal, e.g., a machine-generated electrical, optical, orelectromagnetic signal, that is generated to encode information fortransmission to suitable receiver apparatus for execution by a dataprocessing apparatus.

A computer storage medium can be, or be included in, a computer-readablestorage device, a computer-readable storage substrate, a random orserial access memory array or device, or a combination of one or more ofthem. Moreover, while a computer storage medium is not a propagatedsignal, a computer storage medium can be a source or destination ofcomputer program instructions encoded in an artificially-generatedpropagated signal. The computer storage medium can also be, or beincluded in, one or more separate physical components or media (e.g.,multiple CDs, disks, or other storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus or system on datastored on one or more computer-readable storage devices or received fromother sources.

The term data processing apparatus encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application-specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub-programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification, at leastin part, can be performed by one or more programmable processorsexecuting one or more computer programs to perform actions by operatingon input data and generating output. The processes and logic flows canalso be performed by, and apparatus can also be implemented as, specialpurpose logic circuitry, e.g., an FPGA (field programmable gate array)or an ASIC (application-specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for performing actions in accordance with instructions andone or more memory devices for storing instructions and data. Generally,a computer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto-optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, e.g., a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), to name just a few.Devices suitable for storing computer program instructions and datainclude all forms of non-volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

Implementations of the subject matter described in this specificationcan be implemented, at least in part, in a computing system thatincludes a back-end component, e.g., as a data server, or that includesa middleware component, e.g., an application server, or that includes afront-end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user can interact with animplementation of the subject matter described in this specification, orany combination of one or more such back-end, middleware, or front-endcomponents. The components of the system can be interconnected by anyform or medium of digital data communication, e.g., a communicationnetwork. Examples of communication networks include a local area network(“LAN”) and a wide area network (“WAN”), an inter-network (e.g., theInternet), and peer-to-peer networks (e.g., ad hoc peer-to-peernetworks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits data (e.g., an HTML page) to a usercomputer (e.g., for purposes of displaying data to and receiving userinput from a user interacting with the user computer). Data generated atthe user computer (e.g., a result of the user interaction) can bereceived from the user computer at the server.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

This written description does not limit the invention to the preciseterms set forth. Thus, while the invention has been described in detailwith reference to the examples set forth above, those of ordinary skillin the art may effect alterations, modifications and variations to theexamples without departing from the scope of the invention.

1. A system for use in a washroom, wherein the washroom has an entrance,the system comprising: a washroom controller configured to communicatewith one or more hygiene dispensers in the washroom; a thermal sensor,separate from the one or more hygiene dispensers, configured to detectthermal events at the entrance and communicate data describing thethermal events to the washroom controller; and a data processingapparatus configured to access the data from the washroom controller andanalyze the data to determine a number of thermal events over a giventime period and a number of dispenses from the at least one of the oneor more hygiene dispensers, wherein the data processing apparatus isfurther configured to (i), in response to determining that there havebeen no thermal events for a set period of time, instructing the one ormore hygiene dispensers to enter a low energy state in which one or morehygiene dispensers cannot dispense, and (ii), in response to determiningthat there have been thermal events, instructing the one or more hygienedispensers to enter an active state in which the one or more hygienedispensers dispense in normal operation and can actuate to dispenseproducts in response to an environmental stimulus.
 2. The system ofclaim 1, wherein the data processing apparatus and washroom controllerare part of a same device.
 3. The system of claim 1, wherein the thermalsensor comprises an array of infrared sensors.
 4. The system of claim 1,wherein determine a number of thermal events over a given time periodcomprises comparing the data to a thermal threshold level to identifythe number of thermal events that exceed the thermal threshold level. 5.The system of claim 1, wherein determine a number of thermal eventscomprises interpolating the thermal data to generate interpolatedthermal data.
 6. The system of claim 5, wherein determine a number ofthermal events comprises removing noise from the interpolated thermaldata.
 7. The system of claim 6, wherein removing noise from theinterpolated thermal data comprises determining an average backgroundtemperature.
 8. The system of claim 1, wherein the thermal sensor isconfigured to detect thermal hot zones in the washroom and a thermal hotzone is an area in the washroom that has a temperature higher thansurrounding areas in the washroom.
 9. The system of claim 8, wherein thedata processing apparatus is configured to analyze the data to determinea number of thermal hot zones.
 10. The system of claim 8, wherein thedata processing apparatus is configured to analyze the data to determinea time duration that one of the thermal hot zones has not moved and inresponse to determining the time duration exceeds a threshold, the dataprocessing apparatus is configured to notify an administrator. 11.(canceled)
 11. The system of claim 1, wherein the entrance is a door.12. The system of claim 1, wherein the entrance is an open threshold.13-17. (canceled)
 13. A method comprising: communicating, from a hygienedispenser in a washroom to a washroom controller, use data describingdispense events from the hygiene dispenser, wherein a dispense eventdefines an actuation of the dispenser to dispense consumable product;detecting, by a thermal sensor, thermal events proximate an entrance ofthe washroom; communicating, from the thermal sensor to the washroomcontroller, thermal data describing the thermal events; analyzing theuse data and thermal event data to determine a number of dispense eventsand a number of occupants that entered in the washroom; and comparingthe number of dispense events to the number of occupants; and inresponse to determining that the number of occupants differs from thenumber of dispense events by a predetermined measure, providing acommunication specifying that the hygiene dispenser may bemalfunctioning.